<!DOCTYPE html>
<html>
<head>
  <title>Lenses.io Kafka Development Environment</title>

  <meta charset=utf-8/>
  <meta name="viewport" content="width=device-width">
  <meta name="description" content="Lenses.io Kafka Development Environment">
  <!-- <meta name="keywords"
       content="kafka,schema registry,topics,kafka-topic,kafka-rest,kafka-rest-proxy,kafka management,avro"> -->
  <meta name="author" content="Lenses.io Team">
  <link rel="shortcut icon" href="kafka-topics-ui/src/assets/icons/favicon.png">

  <!-- Angular Material style sheet -->
  <link rel="stylesheet" href="kafka-topics-ui/bower_components/angular-material/angular-material.min.css">
  <link rel="stylesheet" href="kafka-topics-ui/bower_components/font-awesome/css/font-awesome.min.css">
  <style>
     body {background-color: #F5F5F5;}
    .bigTotal,.details,.tile-heading{text-align:center}
    .bigTotal{font-size:3em;margin:0;padding:0}
    .details{font-size:13px;color:#333}
    .tile-heading{height:16px;line-height:16px;font-weight:400;opacity:.7;font-size:14px;text-transform:uppercase;display:block}
    .summary, .summary-title{text-align:center;font-weight: 500; letter-spacing: .010em; margin: 0;line-height: 1.6em; font-size:12px}
    .summary-title{text-transform:uppercase;padding:10px;text-decoration:none}
    .summary{opacity:.7;padding:0 10px;min-height:30px}
    h1,h2,h3,h5{font-family:Tahoma;font-weight:200;color:#666;padding-left:10px;margin:10px;}
    .card-link{text-decoration:none;cursor:hand}
    .ok{color:#7CAF57; font-size:12px; font-family:Tahoma;}
   .md-list-item-short { height: 15px; min-height: 15px;}
   .important-message { color: #ff6f10; }
   .important-message code { background-color: #FCFCFC; }
   .fdd-head h3 code a, a:active, a:visited a:hover { text-decoration: none; color: #2a3b4d; font-size: 14px;}
   .fdd-head h3 code { font-size: 14px;}
  </style>
</head>

<body ng-app="DockerPage" ng-cloak>

<div ng-controller="MainCtrl" style="background-color: #F5F5F5;">
<!--Header-->
<div flex layout="row" layout-xs="column">
  <div flex="20"></div>
  <div flex="60" class="fdd-head">
    <h3> <img ng-src="img/lenses-fdd-logo.png" style="width:45px; float:left; padding-right:5px;">
        Kafka Development Environment<br/>
        <code>docker container powered by <a href="https://lenses.io">Lenses.io</a></code>
    </h3>
  </div>
</div>

<!--summaries-->
<div flex layout="row" layout-xs="column">
  <div flex="20"></div>
  <div flex="60">
    <!--<h1>Applications</h1>-->
    <!--<span class="md-headline tile-heading"><b>Applications</b></span>-->

    <div flex layout="row" layout-xs="column">

      <!--Schemas-->
      <div flex id="schema-registry">
        <a href="./schema-registry-ui/" class="card-link">
          <md-card style="background-color: #2196F3; color: #fff; ">
            <md-card-title style="padding-bottom:5px;">
              <md-card-title-text>
                <span class="md-headline tile-heading ">SCHEMAS</span>
              </md-card-title-text>
              <!--<md-button class="md-fab md-mini md-primary">S</md-button>-->
            </md-card-title>
            <md-card-content>
              <div layout="row" layout-xs="column" layout-wrap>
                <div flex>
                  <p class="bigTotal">{{schemas}}</p>
                </div>
              </div>
            </md-card-content>
            <md-card-actions layout="column" layout-align="start"  style="background-color:#fff;color:#333;margin:0px;">
              <div class="summary-title">Schema Registry UI</div>
              <div class="summary">manage avro schemas</div>
              <md-button class="md-primary summary" style="margin:5px">ENTER</md-button>
            </md-card-actions>
          </md-card>
        </a>
      </div>

      <!--Topics-->
      <div flex>
        <md-card style="background-color: #AD1457; color: #fff; ">
          <md-card-title style="padding-bottom:5px;">
            <md-card-title-text>
              <span class="md-headline tile-heading ">TOPICS</span>
            </md-card-title-text>
          </md-card-title>
          <md-card-content>
            <div layout="row" layout-xs="column" layout-wrap>
              <div flex>
                <p class="bigTotal">{{topics}}</p>
              </div>
            </div>
          </md-card-content>
          <md-card-actions layout="column" layout-align="start" style="background-color:#fff;color:#333;margin:0px;">
            <div class="summary-title">Kafka Topics UI</div>
            <div class="summary">browse topics and data</div>
            <md-button class="md-primary summary" style="margin:5px" ng-href="./kafka-topics-ui/">ENTER</md-button>
          </md-card-actions>
        </md-card>
      </div>

      <!--Connectors-->
      <div flex>
        <md-card style="background-color: #00BCD4; color: #fff; ">
          <md-card-title style="padding-bottom:5px;">
            <md-card-title-text>
              <span class="md-headline tile-heading ">CONNECTORS</span>
            </md-card-title-text>
          </md-card-title>
          <md-card-content>
            <div layout="row" layout-xs="column" layout-wrap>
              <div flex>
                <p class="bigTotal">{{connectors}}</p>
              </div>
            </div>
          </md-card-content>
          <md-card-actions layout="column" layout-align="end center" style="background-color:#fff;color:#333;margin:0px;">
            <div class="summary-title">Kafka connect UI</div>
            <div class="summary">setup &amp; manage connectors</div>
            <md-button class="md-primary summary" style="margin:5px;" ng-href="./kafka-connect-ui/">ENTER</md-button>
          </md-card-actions>
        </md-card>
      </div>

      <!--Brokers-->
      <div flex>
        <md-card style="background-color: #e45453; color: #fff; ">
          <md-card-title style="padding-bottom:5px;">
            <md-card-title-text>
              <span class="md-headline tile-heading ">Brokers</span>
            </md-card-title-text>
          </md-card-title>
          <md-card-content>
            <div layout="row" layout-xs="column" layout-wrap>
              <div flex>
                <p class="bigTotal">{{brokers}}</p>
              </div>
            </div>
          </md-card-content>
          <md-card-actions layout="column" layout-align="end center" style="background-color:#fff;color:#333;margin:0px;">
            <div class="summary-title">Lenses</div>
            <div class="summary">management and monitoring</div>
            <md-button class="md-primary summary" style="margin:5px;color:#e45453;font-weight:bold;" ng-href="https://lenses.io/downloads/lenses/?s=from-fdd">ENTER</md-button>
          </md-card-actions>
        </md-card>
      </div>
    </div>

  </div>

</div>

<!--List-->
<div flex layout="row" layout-xs="column">
  <div flex="20"></div>
  <div flex="30">

    <!--Running Services card-->
    <md-card>
      <md-card-header style="border-bottom:1px solid #ccc;">
        <md-card-avatar>
          <img src="img/docker.png"/>
        </md-card-avatar>
        <md-card-header-text>
          <span class="md-headline tile-heading" style="text-align:left;"><b>RUNNING SERVICES</b></span>
          <span class="md-subhead"><code> fast-data-dev</code></span>
        </md-card-header-text>
      </md-card-header>
      <md-card-content>
        <md-list>
          <md-list-item ng-repeat="service in runningServices" class="md-2-line md-long-text" style="margin:-0.4em;">
            <img src="img/ok.png" class="md-avatar" style="margin-top:10px;margin-bottom:6px; width:20px; height:20px;"  />
            <div class="md-list-item-text" style="margin-top:8px;margin-bottom:8px;">
              <h4>{{service.name}}</h4>
              <p style="font-size:12px;">{{service.description}}</p>
            </div>
          </md-list-item>
        </md-list>
      </md-card-content>
      </md-card>

      <!--Services information card-->
      <md-card>
          <md-card-title style="padding-bottom:5px;">
              <md-card-title-text>
                  <span class="md-headline tile-heading"><b>Services Ports</b></span>
              </md-card-title-text>
          </md-card-title>
          <md-card-content>
              <md-list>
                  <md-list-item ng-repeat="i in servicesInfo" flex class="md-list-item-short" style="padding: 0" ng-hide="{{i.port == ''}}">
                      <div flex="" layout="row" layout-xs="column" class="layout-xs-column layout-row flex">
                          <div flex class="flex-70">
                  <h5>{{i.port}} : {{i.name}}</h5>
                          </div>
                          <div flex class="flex-30">
                              <h5 class="ng-binding" style="color: #AAA;">{{i.jmx}}</h5>
                          </div>
                      </div>
                  </md-list-item>
              </md-list>
          </md-card-content>
      </md-card>

      <!--Browse information card-->
      <md-card>
          <md-card-title style="padding-bottom:5px;">
              <md-card-title-text>
                  <span class="md-headline tile-heading"><b>Browse</b></span>
              </md-card-title-text>
          </md-card-title>
          <md-card-content>
              <md-list>
                  <md-list-item ng-repeat="expdir in exposedDirectories | filter: { enabled: true}" flex class="md-list-item-short" style="padding: 0">
                      <div flex="" layout="row" layout-xs="column" class="layout-xs-column layout-row flex">
                          <h5>- <a style="text-decoration:none;" href="{{expdir.url}}">{{expdir.name}}</a></h5>
                      </div>
                  </md-list-item>
              </md-list>
          </md-card-content>
      </md-card>

  </div>

  <div flex="30">
    <md-card>
      <md-card-title style="padding-bottom:5px;">
        <md-card-title-text>
          <span class="md-headline tile-heading"><b>Coyote Health Checks</b></span>
          <p class="summary" style="font-size:12px; text-align:center; padding: 5px 0px;">
            Your set up is being verified using the Coyote integration testing tool and generates working examples.
          </p>
        </md-card-title-text>
      </md-card-title>
      <md-card-content style="background-color:#fff; padding: 15px;">

        <!--while running-->
        <div flex layout="row" layout-align="center center" ng-show="running">
          <md-progress-circular md-mode="indeterminate"></md-progress-circular>
          <h5>Running...</h5>
        </div>
        <!--after run-->
        <div flex layout="column" layout-align="center center" ng-hide="running">
          <svg width="40%" height="40%" viewbox="0 0 100 100">
            <circle cx="50" cy="50" r="40" fill="transparent"/>
            <circle cx="50" cy="50" r="40" fill="transparent" stroke-width="15" stroke="#f4f4f4"/>
            <circle cx="50" cy="50" r="40" fill="transparent" stroke-width="15" stroke="#00CCFF" stroke-dasharray="251.2" stroke-dashoffset="{{chartValue}}"/>
            <text x="30" y="55" fill="black" font-size="15" style="padding-top:50px;">
              {{chartPercentage}}%
            </text>
          </svg>
          <p class="summary">Passed: {{coyoteResults.passed}} | Failed: {{coyoteResults.failed}}</p>
          <md-button class="md-raised" href="./coyote-tests/">View Results</md-button>
        </div>
      </md-card-content>
      <md-card-content style="background-color:#f4f4f4;">
        <div flex layout-align="center center">
          <p class="summary">
              Find out more about Coyote awesome tool
              <a style="text-decoration:none;" href="https://github.com/Landoop/coyote" target="_blank">here</a>.
          </p>
        </div>
      </md-card-content>
    </md-card>

    <!--News card-->
    <md-card>
        <md-card-title style="padding-bottom:5px;">
            <md-card-title-text>
                <span class="md-headline tile-heading"><b>Fast Data News</b></span>
            </md-card-title-text>
        </md-card-title>
        <md-card-content>
          <div flex style="font-family:Tahoma;font-size:12px;color:#666;padding-left:10px;margin:10px;font-weight:normal;overflow-y:auto;max-height:300px;">
            <ul style="padding-left:10px;">
                <li>
                  <h4>Kafka 3.6.1 and some filesystem changes</h4>
                  <p>
                    Fast Data Dev with Apache Kafka 3.6.1 and Confluent
                    components 7.5.3 is now available.

                    We have also made some changes to the filesystem, where we
                    renamed the old <code>landoop</code> directories
                    to <code>lensesio</code>. We created a symlink to ease the
                    transition for anyone who relies on these directories.
                  </p>
                </li>
                <li>
                  <h4>Stream Reactor 6.0.3 and Lenses.io SMT's</h4>
                  <p>
                    Another big update for Stream Reactor is now
                    available. Furthermore we have added
                    the <a href="https://github.com/lensesio/kafka-connect-smt">Lenses.io
                    SMTs</a>.
                  </p>
                </li>
                <li>
                  <h4>Stream Reactor 4.2.0</h4>
                  <p>
                    The latest and greatest version of Stream Reactor is now available.
                    It brings new features, bug fixes and enterprise support for AWS S3.
                  </p>
                </li>
                <li>
                  <h4>ARM64 support</h4>
                  <p>
                    Fast Data Dev now supports ARM64. You can now run Fast Data
                    Dev on your Raspberry Pi 4 or any other ARM64 device such as
                    AWS Graviton2 and Apple M1.
                  </p>
                </li>
                <li>
                  <h4>Kafka 3.3.1</h4>
                  <p>
                    Fast Data Dev with Apache Kafka 3.3.1 and Confluent components 7.3.0 is now available.
                    Stream Reactor, Debezium, Confluent, and Couchbase connectors were also updated..
                  </p>
                </li>
                <li>
                  <h4>Switch from Alpine Linux to Debian Slim</h4>
                  <p>
                    As part of our plan to move to JRE11, we switched from Alpine Linux as base to Debian
                    Slim. The JRE of Alpine Linux had a few issues with Kafka Connect from time to time and
                    early testing of Lenses Box with JRE11 revealed more.

                    Fast-Data-Dev and Lenses Box images are so big that the switch doesn't affect significantly
                    the size, the switch may even shave off a couple megabytes. On top the glibc-based Debian
                    will offer much better compatibility for running anything inside fast-data-dev.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.6.2</h4>
                  <p>
                    Fast Data Dev with Apache Kafka 2.6.2 and Confluent components 6.0.2 is now available.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.5.1</h4>
                  <p>
                    Fast Data Dev with Apache Kafka 2.5.1 and Confluent components 5.5.1 is now available.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.4.1</h4>
                  <p>
                    Fast Data Dev with Apache Kafka 2.4.1 and Confluent components 5.4.2 is now available.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.3.2-pre.200523</h4>
                  <p>
                    You may have noticed a lack of updates for Kafka. Unfortunately Kafka 2.3.1 has a serious bug, the log cleaner does
                    not work and compacted topics just keep growing. Although the fix has been in for many months, the upstream hasn't
                    tagged 2.3.2 yet. As such we had to make a snapshot release based on the state of the 2.3 branch at 23rd May 2020.
                  </p>
                </li>
                <li>
                  <h4>Landoop is now Lenses.io</h4>
                  <p>
                    Our name may have changed, but our commitment to developers has not. We still pledge to make
                    the best tools and assist developers on their path to Streaming Data and DataOps.
                  </p>
                  <p>
                    You can find fast-data-dev docker images as both <code>lensesio/fast-data-dev</code> and <code>landoop/fast-data-dev</code>. Also
                    have a look at our new website, <a style="text-decoration:none;" href="https://lenses.io" target="_blank">lenses.io</a>!
                    You might also want to give <code>lensesio/box</code> a look, fast-data-dev with our Lenses software on top. Claim your free license
                    <a style="text-decoration:none;" href="https://lenses.io/downloads/lenses/?s=from-fdd" target="_blank">here</a>.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.2 takes the latest tag</h4>
                  <p>
                    The latest tag will now bring Kafka 2.2.1.
                  </p>
                  <p>
                    If you are eager to test Kafka 2.3.0, you may use the 2.3 and 2.3.0 tags.
                  </p>
                </li>
                <li>
                  <h4>Kafka 2.0 and Stream Reactor 1.2.0 take the latest tag</h4>
                  <p>
                    The latest tag will now bring Kafka 2.0.1. It will also bring the latest Stream Reactor release, 1.2.0, which
                    includes enhancements, fixes and a brand new connector we know you will love: the Hive connector.
                  </p>
                  <p>
                    If you are eager to test Kafka 2.1.0, you may use the 2.1 and 2.1.0 tags.
                  </p>
                </li>
                <li>
                  <h4>Kafka 1.1 earns the latest tag</h4>
                  <p>
                    Kafka 1.1 was only available as a tag until now. With the latest 1.1.1 release, we have enough confidence to promote it to the master branch
                    and latest tag; the default Kafka version for fast-data-dev.
                  </p>
                </li>
                <li>
                  <h4>Fast Data Dev: Total Revamp</h4>
                  <p>
                    This is the largest update we've done to fast-data-dev since its inception. We are very excited and also curious to see
                    how the new features will be used.
                  </p>
                  <p>
                    First of all we updated to Kafka 1.0 but with a twist. We replaced the Confluent OSS distribution
                    with our very own Kafka distribution. We build everything (Kafka, Connect, Schema Registry, 3rd party connectors) from source
                    without any changes. We do alter the file hiercharchy and the startup scripts, to make them work better, be more clean and offer
                    a few new options, like the option to start a vanilla Kafka + Connect without avro support, just like the release you would download
                    from the Apache Kafka site.
                  </p>
                  <p>
                    This change will help us provide better support, update faster and add new features. Anyone interested in LKD (Landoop’s Kafka
                    Distribution), can find more information in the documentation. Please remember that <strong>we are commited to Apache Kafka
                      and we support all vendors</strong> —or no vendors.
                  </p>
                  <p>
                    The internals of fast-data-dev also saw a major refactor. For users the main difference will be that everything starts much faster and
                    more predictable, the RAM requirement is lower (you can get away with just 3GB or less) and now you can fine tune any option for
                    Kafka, Connect and the rest of the components via environment variables. Due to this more advanced setups are now supported as well.
                    At last we added new connectors from Couchbase, Debezium and DbVisit and made possible to disable services.
                  </p>
                  <p>
                    With big changes sometimes come <del>big</del> new bugs. If you find one, please
                    <a style="text-decoration:none;" href="https://github.com/Landoop/fast-data-dev/issues" target="_blank">
                      report it</a> so we can squash it!
                  </p>
                  <p>
                    For the developers who have forked fast-data-dev this will probably be a breaking change as too many things changed in the image.
                    On the other hand, the code is much more clean, more robust, easier to read, easier to change and easier to add new features or services.
                    We do not plan more such big changes anytime soon, so once you pick up the new codebase you can be sure it will remain stable.
                  </p>
                </li>
                <li>
                  <h4>Stream Reactor 0.4.0 and 1.0.0</h4>
                  <p>
                    Landoop Stream Reactor hit versions 0.4.0 (targeting Kafka 0.11.0) and 1.0.0 (targeting Kafka 1.0). This is
                    our biggest release ever with 25 connectors in total.
                    <a style="text-decoration:none;" href="https://github.com/Landoop/stream-reactor/releases" target="_blank">Find here our release notes and builds.</a>
                  </p>
                  <p>
                    An industry first in this release is our Apache Kafka - Apache Pulsar connector! You can try the sink
                    today —the source is work in progress.
                    As a leading streaming company, we, at Landoop, are commited to help you make the most out of your streams.
                  </p>
                </li>
                <li>
                  <h4> Schema Registry UI and Kafka Connect UI reach 0.9.4</h4>
                  <p>
                    A twin release by our frontend team! Schema Registry UI now supports
                    schema deletion. Kafka Connect UI adds new connectors and even better
                    support for Kafka 0.11.0 and 1.0. Find out more in the
                    <a style="text-decoration:none;" href="https://github.com/Landoop/schema-registry-ui/releases" target="_blank">Schema Registry UI 0.9.4 release notes</a>
                    and the <a style="text-decoration:none;" href="https://github.com/Landoop/kafka-connect-ui/releases" target="_blank">Kafka Connect UI 0.9.4 release notes</a>.
                  </p>
                <li>
                  <h4>Datamountaineer and Stream Reactor Join Landoop!</h4>
                  <p>
                    We are happy to announce that Datamountaineer became part of Landoop.
                  </p>
                  <p>
                    We are excited to work together to create new products that will empower Kafka developers
                    and administrators. A platform is its users; Landoop’s mission is to help all Kafka
                    users get the most out of it.
                  </p>
                  <p>
                    Datamountaineer are authors of Stream Reactor, the largest collection of open source
                    Kafka connectors. We are commited to keep it that way and further improve it.
                  </p>
                  <h4>Kafka Connect UI 0.9.3 and Kafka 0.11.0.1 Upgrade</h4>
                  <p>
                    The newer Kafka Connect UI adds author and documentation support for connectors. Also this is the first tagged
                    release where you can name your clusters when using our docker image.
                    Kafka 0.11.0.1 is a bugfix release and a recommended upgrade.
                  </p>
                </li>
                <li>
                  <h4>Kafka Topics UI 0.9.3 Upgrade</h4>
                  <p>
                    The new version solves a couple bugs that will be most visible in the Reddit posts sample topic.
                    If you use the Kafka Topics UI docker image, new configuration options are available as well as
                    access logs and better support for k8s and rancher.
                  </p>
                </li>
                <li>
                  <h4>New JSON Dataset</h4>
                  <p>
                    We added a small subset of <a style="text-decoration:none;" href="https://www.backblaze.com/b2/hard-drive-test-data.html" target="_blank">
                      BackBlaze's SMART dataset for Q1 2017</a>. For this dataset we went with JSON as all our datasets up till now were in avro.
                    As usual, you can set the environment variable <code>RUNNING_SAMPLEDATA=1</code> and these data
                    will keep coming (cycling over the same dataset).
                  </p>
                </li>
                <li>
                  <h4>Stream Reactor 0.3.0 for Kafka 0.11.0</h4>
                  <p>
                    We are proud for this release as well as for the 0.2.6 sister release which targets Kafka 0.10.2.
                    There are new connectors, like the FTP source connector, the ElasticSearch 5 sink conector
                    and the MQTT sink connector to complement the MQTT source whilst the existing connectors got even
                    better with improvements, fixes and KCQL 2. Some configuration options were renamed for consistency,
                    so check the docs and our kafka connector tests repository.
                  </p>
                </li>
                <li>
                  <h4>Confluent Platform OSS 3.3.0</h4>
                  <p>
                    We updated to CP 3.3.0 and Kafka 0.11.0.0. It is an exciting release with new features such as
                    exactly-once delivery and transactional messaging. A very nice (and needed) feature is plugin.path for Connect,
                    which permits libraries isolation between connectors. It comes though with a price: Connect needs a few minutes
                    in order to load all the libraries and start up.
                  </p>
                </li>
                <li>
                  <h4>New Datasets and Running Data</h4>
                  <p>
                    We added new data for you to play with: reddit posts and NYC yellow taxis trip data.
                    Even better, if you set the environment variable <code>RUNNING_SAMPLEDATA=1</code> these data
                    will keep coming (cycling over the same datasets) at variable, low rates. We set the
                    retention size to 25MB per partition, so your docker disk won't get full. Enjoy!
                  </p>
                </li>
                <li>
                  <h4>Confluent Platform OSS 3.2.2</h4>
                  <p>
                    We updated to CP 3.2.2 and Kafka 0.10.2.1-cp2.
                  </p>
                </li>
                <li>
                  <h4>Kafka Bash Completion 0.1</h4>
                  <p>
                    We added our new project,
                    <a style="text-decoration:none;" href="https://github.com/Landoop/kafka-autocomplete">kafka-autocomplete</a>
                    to fast-data-dev. What does this mean? Open a bash terminal inside the container:<br />
                    <code>$&nbsp;docker&nbsp;exec&nbsp;-it&nbsp;[ID|NAME]&nbsp;bash</code><br /><br />
                    And try something like:<br />
                    <code>$&nbsp;kafka-topics&nbsp;--config&nbsp;&lt;TAB&gt;&lt;TAB&gt;</code><br />
                    <code>$&nbsp;kafka-console-consumer&nbsp;--&nbsp;&lt;TAB&gt;&lt;TAB&gt;</code><br />
                    <code>$&nbsp;kafka-topics&nbsp;--zookeeper&nbsp;localhost&nbsp;--topic&nbsp;&lt;TAB&gt;&lt;TAB&gt;</code><br /><br />
                    If you like it, don't hesitate to drop us some stars! :)
                  </p>
                </li>
                <li>
                  <h4>Kafka Connect UI upgraded to 0.9.2</h4>
                  <p>
                    Listening to your feedback, we improved the real time validation engine to better suit your workflow.
                    Thank you for helping us adjust the UIs to real needs.
                  </p>
                </li>
                <li>
                  <h4>Kafka Topics UI upgraded to 0.9.1</h4>
                  <p>
                    This release switched to V2 APIs of Kafka REST so going forward we will only support CP3.2.x or greater.
                    What you get in return? Seeking in messages, partition view and more. Many smaller improvements are also included.
                  </p>
                </li>
                <li>
                  <h4>Schema Registry UI upgraded to 0.9.1</h4>
                  <p>
                    Bug fixes for Firefox and Safari and other enhancements.
                  </p>
                </li>
                <li>
                  <h4>Kafka Connect UI upgraded to 0.9.1</h4>
                  <p>
                    The upgraded version has many improvements, visual but also under the hood and fixes. Most important though, it supports
                    Connect 0.10.2.0. This means <code>fast-data-dev:cp3.2</code> will soon get out of beta.
                  </p>
                </li>
                <li>
                  <h4>Logs accessible from browser</h4>
                  <p>
                    We made the various logs available through the web interface. You may find them
                    <a style="text-decoration:none;" href="/logs/">here</a>.
                  </p>
                </li>
                <li>
                  <h4>Delete Topics Enabled</h4>
                  <p>
                    Now you can delete Kafka topics. Actually you should have been able from day one but somehow it eluded us.
                    Thanks @simplesteph for bringing to attention and providing a PR.
                  </p>
                </li>
                <li>
                  <h4>Stream Reactor 0.2.5</h4>
                  <p>
                    We updated Stream Reactor to 0.2.5. This release contains many fixes, new connectors and support for Kafka 0.10.2.0.
                  </p>
                </li>
                <li>
                  <h4>Sample Data</h4>
                  <p>
                    We added a topic with sample AIS messages (sea vessels position reports) which you can use to play. It is named position-reports and
                    you can find it <a style="text-decoration:none;" href="/kafka-topics-ui/#/cluster/fast-data-dev/topic/n/position-reports/">here</a>,
                    about one minute after fast-data-dev is spawned. We plan to add more topics for you to experiment with.
                  </p>
                </li>
                <li>
                  <h4>Kafka Topics UI upgraded to 0.8.3</h4>
                  <p>
                    We upgraded Kafka Topics UI to 0.8.3 which contains the new table view, as well as bug fixes, better handling of binary
                    key types and other enhancements.
                  </p>
                </li>
                <li>
                  <h4>Web server fixes for UIs</h4>
                  <p>
                    We got a couple reports about the UIs not working properly on some OSes (windows, fedora) and
                    certain setups. We made a change to the webserver (Caddy) configuration and instead of accessing
                    the REST endpoints at <code>localhost</code>, it will try to access them at <code>0.0.0.0</code>.
                    Please if this setting causes you any trouble, don't hesitate to
                    <a style="text-decoration:none;" href="https://github.com/Landoop/fast-data-dev/issues">open an issue</a>.
                    Thanks @jischebeck for helping on this.
                  </p>
                </li>
                <li>
                  <h4>SSL support hit master</h4>
                  <p>
                    We added support for a SSL port for the broker that requires authentication. Upon startup,
                    fast-data-dev will create a CA and key-certificate pairs for kafka and clients. Learn how easy it is to
                    <a style="text-decoration:none;" href="https://github.com/Landoop/fast-data-dev#enable-ssl-on-broker">enable and use this feature</a>!
                  </p>
                </li>
                <li>
                  <h4>JMX support added</h4>
                  <p>
                    We now enable JMX by default for the Kafka components and make it available at ports <code>9581-9584</code>.
                    You can optionally disable it via <code>-e DISABLE_JMX=1</code>.
                  </p>
                </li>
                <li>
                  <h4>Kafka does not run as root anymore</h4>
                  <p>
                    This is <strong>important</strong>! Fast Data Dev’s behaviour changed. Kafka is now running by default
                    as user <code>nobody</code> instead of the superuser (<code>root</code>). If you need the old behaviour use <code>-e RUN_AS_ROOT=1</code>
                    on your docker command line.
                  </p>
                </li>
              </ul>
            </div>
        </md-card-content>
        <md-card-content style="background-color:#f4f4f4;">
            <div flex layout-align="center center">
                <p class="summary">
                    Learn more about fast-data-dev from our
                    <a style="text-decoration:none;" href="https://github.com/Landoop/fast-data-dev" target="_blank">README</a>.
                </p>
            </div>
        </md-card-content>
    </md-card>

  </div>
</div>

<!--Footer-->
<h6 style="text-align:center;margin-bottom:5px;">Report Issues & Stars!</h6>
<div flex layout="row" layout-align="center center">

  <a class="github-button" href="https://github.com/Landoop/fast-data-dev/issues" data-count-api="/repos/Landoop/fast-data-dev#open_issues_count" data-count-aria-label="# issues on GitHub" aria-label="Issue Landoop/fast-data-dev on GitHub">Issue</a>
  <a class="github-button" href="https://github.com/Landoop/fast-data-dev" data-count-href="/Landoop/fast-data-dev/stargazers" data-count-api="/repos/Landoop/fast-data-dev#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star Landoop/fast-data-dev on GitHub">Star</a>
</div>

<div flex layout="row" layout-align="center center">
  <img ng-src="img/landoop-blue.svg" style="width:20px;float: left;padding-right:5px;">
  <p style="font-size:10px;">powered by <a href="https://lenses.io" style="text-decoration:none;color:blue;" target="_blank">Lenses.io</a></p>
</div>

</div>

<!-- Angular Material requires Angular.js Libraries -->
<script src="kafka-topics-ui/bower_components/angular/angular.min.js"></script>
<script src="kafka-topics-ui/bower_components/angular-animate/angular-animate.min.js"></script>
<script src="kafka-topics-ui/bower_components/angular-aria/angular-aria.min.js"></script>

<!-- Angular Material Library -->
<script src="kafka-topics-ui/bower_components/angular-material/angular-material.min.js"></script>

<!--Github Buttons-->
<script async defer src="https://buttons.github.io/buttons.js"></script>

<!-- Place this tag where you want the button to render. -->
<!-- Custom js -->
<script src="env.js"></script>

<script type="text/javascript">

    angular
    .module('DockerPage', ['ngMaterial'])
    .controller('MainCtrl', function ($scope, $http, $log, $timeout, $interval) {

    //LOAD ENV vars
    $scope.runningServices = runningServices;
    $scope.servicesInfo = servicesInfo;
    $scope.exposedDirectories = exposedDirectories;

    //SUMMARIES
     this.getSummaries = function (){
    $http.get('/api/schema-registry/subjects/')
      .then(
        function successCallback(response) { $scope.schemas = response.data.length },
        function errorCallback(response) { $log.error("Failure with : " + response) });

    $http.get('/api/kafka-rest-proxy/topics/')
      .then(
        function successCallback(response) { $scope.topics = response.data.length },
        function errorCallback(response) { $log.error("Failure with : " + response) });

    $http.get('/api/kafka-connect/connectors')
      .then(
        function successCallback(response) { $scope.connectors = response.data.length},
        function errorCallback(response) { $log.error("Failure with : " + response) });

    $http.get('/api/kafka-rest-proxy/brokers')
      .then(
        function successCallback(response) { $scope.brokers = response.data.brokers.length },
        function errorCallback(response) { $log.error("Failure with : " + response) });
    };
    //initial invoke
    this.getSummaries();

    //COYOTE
    $scope.running = true;

    function calculateChart(passed, failed) {
      var c = Math.PI * ( 40 * 2); //r=40
      var percentage = (passed * 100) / (passed + failed);
      percentage = Math.round( percentage * 10 ) / 10;
      console.log("percentage " + percentage);
      if (percentage < 0) { percentage = 0;}
      if (percentage > 100) { percentage = 100;}
      $scope.chartValue = ((100-percentage)/100)*c;
      $scope.chartPercentage = percentage;
    }

   this.loadCoyoteResults = function (){
      $http.get('/coyote-tests/results').then(function(response){
              passed = response.data.passed;
              failed = response.data.failed;
              if (passed != 0 || failed != 0) {
                $scope.running = false;
                $scope.coyoteResults = response.data;
                calculateChart(response.data.passed, response.data.failed);
                return;
              }
      });
   };

   //Put in interval, first trigger after 10 seconds
   var theInterval = $interval(function(){
      this.loadCoyoteResults();
      this.getSummaries();
   }.bind(this), 10000);

    $scope.$on('$destroy', function () {
        $interval.cancel(theInterval)
    });

   //invoke initialy
   this.loadCoyoteResults();

    //--- end of controller
    });

</script>

</body>
</html>
